home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 05 - 1989 / 05.08 Aug 89 / POOPDraw Code ƒ / OBJT Oval.c < prev    next >
Encoding:
C/C++ Source or Header  |  1989-06-13  |  2.6 KB  |  111 lines  |  [TEXT/KAHL]

  1.  
  2. /********************************************************************/
  3. /*                        SOURCE CODE FILE                            */
  4. /********************************************************************/
  5. /*
  6. *   >>>    File name:        6.2 OvalObject.c    
  7. *
  8. *      >>>    Purpose:        Methods for Oval Object
  9. *     >>>    Project:        PoopDraw    Version 1        
  10. *     >>>    Date:            2/20/89
  11. *      >>>    By:                Adam Treister
  12. *
  13. */
  14. /********************************************************************/
  15. /*    For Your Information            1802 Hillside Rd. SB CA 93101    */
  16. /********************************************************************/
  17.  
  18. #include "PoopDrawInc"
  19.  
  20. void ObjectDrawHandles(ObjectHandle ObjectH);
  21.  
  22. /***** Object Type Defs *********************************************/
  23.  
  24. typedef DrawObjectRec         OvalObjectRec;
  25. typedef DrawObjectPtr         OvalObjectPtr;
  26. typedef DrawObjectHandle     OvalObjectHandle;
  27.  
  28. /***** Public Functions *********************************************/
  29.  
  30. ObjectHandle NewOvalObj(LPtr ParmP);
  31.  
  32. /***** Private Functions ********************************************/
  33.  
  34. private    ObjDispatch(ObjectHandle ObjectH,int Message,LPtr ParmP);
  35. private    Draw(OvalObjectHandle ObjectH);
  36. private    Frame(OvalObjectHandle ObjectH);
  37.  
  38. /********************************************************************/
  39.  
  40.  
  41. ObjDispatch(ObjectH,Message,ParmP)
  42. ObjectHandle ObjectH;
  43. int Message;
  44. LPtr ParmP;
  45.  
  46. {
  47.     switch(Message)
  48.     {
  49.     
  50.         case DRAW:            Draw(ObjectH);                    break;
  51.         case FRAME:            Frame(ObjectH);                    break;
  52.         default:            DrawObjectDispatch(ObjectH,Message,ParmP);
  53.     }
  54. }    
  55.  
  56. /*---------------------------------------------------------------*/
  57.  
  58. ObjectHandle NewOvalObj(ParmP)
  59. LPtr ParmP;
  60. {
  61.     OvalObjectHandle obj;
  62.     Rect r;
  63.     
  64.     r = *(Rect *) ParmP;
  65.     SortRect(&r);
  66.     if (EmptyRect(&r))    return(NULL);
  67.     obj = _GetHandleToRecord(OvalObjectRec);
  68.     NullOutHandle(obj);
  69.     (*obj)->dispatch = ObjDispatch;
  70.     (*obj)->class = OVAL;
  71.     Dispatch(obj,INIT,&r);
  72.     Dispatch(obj,INVAL,NULL);
  73.     return((ObjectHandle)obj);
  74. }
  75.  
  76. /*---------------------------------------------------------------*/
  77.  
  78. Draw(ObjectH)
  79. OvalObjectHandle ObjectH;
  80. {
  81.     if (BitTst(&(*ObjectH)->attributes,VisibleBit))
  82.     {
  83.         register DrawStateRec drawState;
  84.         Rect r;
  85.         
  86.         r = (*ObjectH)->bounds;
  87. /*          InsetRect(&r,HANDRAD,HANDRAD);
  88.  */
  89.          drawState = (*ObjectH)->drawState;
  90.         PenNormal();
  91.         PenPat(**(GetPattern(drawState.fillPat)));
  92.         PaintOval(&(*ObjectH)->bounds);
  93.         PenPat(**(GetPattern(drawState.penPat)));
  94.         PenSize(drawState.penSize,drawState.penSize);
  95.         FrameOval(&(*ObjectH)->bounds);
  96.  
  97.         if (BitTst(&(*ObjectH)->attributes,SelectedBit))
  98.         {        Dispatch(SELF,DRAWHANDLES,NULL);    
  99.         }
  100.  
  101.     }
  102. }    
  103. /*---------------------------------------------------------------*/
  104.  
  105. Frame(ObjectH)
  106. OvalObjectHandle ObjectH;
  107. {
  108.         FrameOval(&(*ObjectH)->bounds);
  109. }    
  110.  
  111.